
#ifndef Mouse_h
#define Mouse_h

#include <System/Object.h>
#include <System/IntPtr.h>

#include <Riccsson/Xna/Framework/Input/MouseState.h>

namespace Riccsson
{
	namespace Xna
	{
		namespace Framework
		{
			namespace Input
			{
				// Summary:
				//     Allows retrieval of position and button clicks from a mouse input device.
				//     Reference page contains links to related code samples.
				class Mouse sealed
				{
					STATIC_CLASS(Mouse);

					PROP3GET_STATIC(Mouse, System::IntPtr, WindowHandle);

					// Summary:
					//     Gets or sets the window used for mouse processing. Mouse coordinates returned
					//     by GetState are relative to the upper-left corner of this window. Reference
					//     page contains links to related code samples.
					public: static PROP3_GET(System::IntPtr, WindowHandle);

					// Summary:
					//     Gets the current state of the mouse, including mouse position and buttons
					//     pressed. Reference page contains links to related code samples.
					public: static MouseState GetState();

					//
					// Summary:
					//     Sets the position of the mouse cursor relative to the upper-left corner of
					//     the window.
					//
					// Parameters:
					//   x:
					//     The horizontal position of the mouse cursor, relative to the left edge of
					//     the game window.
					//
					//   y:
					//     The vertical position of the mouse cursor, relative to the upper edge of
					//     the game window.
					public: static void SetPosition(int x, int y);
				};
			}
		}
	}
}

#endif